{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a    1.144283\n",
      "b   -1.220977\n",
      "c   -0.760146\n",
      "d   -1.156192\n",
      "e    1.435750\n",
      "dtype: float64\n",
      "0    a\n",
      "1    b\n",
      "2    c\n",
      "3    d\n",
      "dtype: object\n",
      "a    1\n",
      "b    2\n",
      "c    3\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "#series是一个定长的字典序列，它相当于是连个ndarray\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "# ndarray\n",
    "s = pd.Series(np.random.randn(5), index=['a','b','c','d','e'] )\n",
    "print(s)\n",
    "\n",
    "s1 = pd.Series(['a','b','c','d'])\n",
    "print(s1)\n",
    "\n",
    "# 通过字典来创建Series\n",
    "d = {'a':1,'b':2,\"c\":3}\n",
    "s2 = pd.Series(d)\n",
    "print(s2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   Chinese  Math  English\n",
      "0       80    85       90\n",
      "1       85    70       95\n",
      "2       90    95       90\n",
      "          Chinese  Math  English\n",
      "zhangsan       80    85       90\n",
      "lisi           85    70       95\n",
      "wangwu         90    95       90\n",
      "Index(['Chinese', 'Math', 'English'], dtype='object') Index(['zhangsan', 'lisi', 'wangwu'], dtype='object')\n",
      "zhangsan    80\n",
      "lisi        85\n",
      "wangwu      90\n",
      "Name: Chinese, dtype: int64 \n",
      "\n",
      "Chinese    80\n",
      "Math       85\n",
      "English    90\n",
      "Name: zhangsan, dtype: int64 \n",
      "\n",
      "Chinese    90\n",
      "Math       95\n",
      "English    90\n",
      "Name: wangwu, dtype: int64 \n",
      "\n",
      "          Chinese  Math  English\n",
      "zhangsan       80    85       90\n",
      "lisi           85    70       95 \n",
      "\n",
      "          Chinese  Math  English\n",
      "zhangsan      NaN   NaN       90\n",
      "lisi          NaN   NaN       95\n",
      "wangwu       90.0  95.0       90 \n",
      "\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "d = {\"Chinese\":[80,85,90],\"Math\":[85,70,95],\"English\":[90,95,90]}\n",
    "df1 = pd.DataFrame(d)\n",
    "print(df1)\n",
    "df2 = pd.DataFrame(d,index=['zhangsan','lisi','wangwu'])\n",
    "print(df2)\n",
    "print(df2.columns, df2.index)\n",
    "# 列\n",
    "print(df2['Chinese'],'\\n')\n",
    "# 行\n",
    "print(df2.loc['zhangsan'],'\\n')\n",
    "# 行\n",
    "print(df2.iloc[-1],'\\n')\n",
    "# 切片行\n",
    "print(df2[0:2],'\\n')\n",
    "# bool向量获取行\n",
    "print(df2[df2>85],'\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   Chinese  Math  English\n",
      "0       80    85       90\n",
      "1       85    70       95\n",
      "2       90    95       90\n",
      "          Chinese  Math  English\n",
      "zhangsan      NaN   NaN       90\n",
      "lisi          NaN   NaN       95\n",
      "wangwu       90.0  95.0       90 \n",
      "\n"
     ]
    }
   ],
   "source": [
    "d = {\"Chinese\":[80,85,90],\"Math\":[85,70,95],\"English\":[90,95,90]}\n",
    "df1 = pd.DataFrame(d)\n",
    "print(df1)\n",
    "\n",
    "df2 = pd.DataFrame(d, index=['zhangsan','lisi','wangwu'])\n",
    "# 通过bool向量获取某些行\n",
    "print(df2[df2>85],'\\n')\n",
    "df2.to_csv('my.csv')\n",
    "df2.to_excel('my.xlsx')\n",
    "df3 = pd.read_csv('my.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RangeIndex(start=0, stop=3, step=1) \n",
      "\n",
      "Index(['Chinese', 'Math', 'English'], dtype='object') \n",
      "\n",
      "[[80 85 90]\n",
      " [85 70 95]\n",
      " [90 95 90]] \n",
      "\n",
      "       Chinese       Math    English\n",
      "count      3.0   3.000000   3.000000\n",
      "mean      85.0  83.333333  91.666667\n",
      "std        5.0  12.583057   2.886751\n",
      "min       80.0  70.000000  90.000000\n",
      "25%       82.5  77.500000  90.000000\n",
      "50%       85.0  85.000000  90.000000\n",
      "75%       87.5  90.000000  92.500000\n",
      "max       90.0  95.000000  95.000000\n",
      "   Chinese  English  Math\n",
      "0       80       90    85\n",
      "1       85       95    70\n",
      "2       90       90    95\n",
      "   Chinese  Math  English\n",
      "2       90    95       90\n",
      "1       85    70       95\n",
      "0       80    85       90\n",
      "   Chinese  Math  English\n",
      "0       80    85       90\n",
      "1       85    70       95\n",
      "2       90    95       90\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "d = {\"Chinese\":[80,85,90],\"Math\":[85,70,95],\"English\":[90,95,90]}\n",
    "df = pd.DataFrame(d)\n",
    "print(df.index, '\\n')\n",
    "print(df.columns,'\\n')\n",
    "print(df.to_numpy(),'\\n')\n",
    "print(df.describe())\n",
    "#排序\n",
    "print(df.sort_index(axis = 1, ascending=True))\n",
    "\n",
    "print(df.sort_index(axis = 0, ascending=False))\n",
    "# 按数值排序\n",
    "print(df.sort_values(by='Chinese'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    name    age  score\n",
      "0  False  False  False\n",
      "1  False  False   True\n",
      "2  False  False  False\n",
      "3  False   True  False\n",
      "4  False  False  False \n",
      "\n",
      "name     False\n",
      "age       True\n",
      "score     True\n",
      "dtype: bool\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "d = {\"name\":['zhangsan','lisi','wangwu','zhaoliu','maqi'],\"age\":[30.0,20.0,25.0,np.nan,33.0],\"score\":[80.0,np.nan,100000.0,32.0,60.0]}\n",
    "df = pd.DataFrame(d)\n",
    "# 查看缺失值\n",
    "print(df.isnull(), '\\n')\n",
    "print(df.isnull().any())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "       name   age     score\n",
      "0  zhangsan  30.0      80.0\n",
      "1      lisi  20.0       NaN\n",
      "2    wangwu  25.0  100000.0\n",
      "3   zhaoliu   NaN      32.0\n",
      "4      maqi  33.0      60.0 \n",
      "\n",
      "       name   age     score\n",
      "0  zhangsan  30.0      80.0\n",
      "2    wangwu  25.0  100000.0\n",
      "4      maqi  33.0      60.0 \n",
      "\n",
      "       name   age     score\n",
      "0  zhangsan  30.0      80.0\n",
      "1      lisi  20.0      50.0\n",
      "2    wangwu  25.0  100000.0\n",
      "3   zhaoliu  50.0      32.0\n",
      "4      maqi  33.0      60.0\n",
      "    student   age     score\n",
      "0  zhangsan  30.0      80.0\n",
      "1      lisi  20.0       NaN\n",
      "2    wangwu  25.0  100000.0\n",
      "3   zhaoliu   NaN      32.0\n",
      "4      maqi  33.0      60.0\n"
     ]
    }
   ],
   "source": [
    "# 删除 填充 空值\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "d = {\"name\":['zhangsan','lisi','wangwu','zhaoliu','maqi'],\"age\":[30.0,20.0,25.0,np.nan,33.0],\"score\":[80.0,np.nan,100000.0,32.0,60.0]}\n",
    "df = pd.DataFrame(d)\n",
    "df1 = df.copy()\n",
    "print(df1,'\\n')\n",
    "print(df1.dropna(how='any'),'\\n')\n",
    "print(df1.fillna(value=50))\n",
    "# 重命名列\n",
    "df1.rename(columns={'name':'student'}, inplace = True)\n",
    "print(df1)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "       name     score\n",
      "0  zhangsan      80.0\n",
      "1      lisi       NaN\n",
      "2    wangwu  100000.0\n",
      "3   zhaoliu      32.0\n",
      "4      maqi      60.0 \n",
      "\n",
      "       name     score\n",
      "0  zhangsan      80.0\n",
      "2    wangwu  100000.0\n",
      "3   zhaoliu      32.0\n",
      "4      maqi      60.0\n",
      "       name     score\n",
      "0  zhangsan      80.0\n",
      "2    wangwu  100000.0\n",
      "3   zhaoliu      32.0\n",
      "4      maqi      60.0\n",
      "Index(['name', 'score'], dtype='object') \n",
      "\n"
     ]
    }
   ],
   "source": [
    "# 删除 填充 空值\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "d = {\"name\":['zhangsan','lisi','wangwu','zhaoliu','maqi'],\"age\":[30.0,20.0,25.0,np.nan,33.0],\"score\":[80.0,np.nan,100000.0,32.0,60.0]}\n",
    "df = pd.DataFrame(d)\n",
    "df1 = df.copy()\n",
    "# 删除列/行\n",
    "df1 = df1.drop(columns=['age'])\n",
    "print(df1, '\\n')\n",
    "df1 = df1.drop(index=[1])\n",
    "print(df1)\n",
    "# 去除重复值\n",
    "df1 = df1.drop_duplicates()\n",
    "# 修改数据格式\n",
    "df1['score'].astype('str')\n",
    "print(df1)\n",
    "print(df1.columns, '\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0       160.0\n",
      "1         NaN\n",
      "2    200000.0\n",
      "3        64.0\n",
      "4       120.0\n",
      "Name: score, dtype: float64\n",
      "<bound method IndexOpsMixin.value_counts of 0        80.0\n",
      "1        60.0\n",
      "2    100000.0\n",
      "3        32.0\n",
      "4        60.0\n",
      "5        80.0\n",
      "Name: score, dtype: float64>\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "d = {\"name\":['zhangsan','lisi','wangwu','zhaoliu','maqi'],\"age\":[30.0,20.0,25.0,np.nan,33.0],\"score\":[80.0,np.nan,100000.0,32.0,60.0]}\n",
    "df = pd.DataFrame(d)\n",
    "df1 = df.copy()\n",
    "df2 = df1['score'].apply(lambda x: x * 2)\n",
    "print(df2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<bound method IndexOpsMixin.value_counts of 0        80.0\n",
      "1        60.0\n",
      "2    100000.0\n",
      "3        32.0\n",
      "4        60.0\n",
      "5        80.0\n",
      "Name: score, dtype: float64>\n",
      "        name   age     score\n",
      "0   zhangsan  30.0      80.0\n",
      "1       lisi  20.0      60.0\n",
      "2     wangwu  25.0  100000.0\n",
      "3    zhaoliu  60.0      32.0\n",
      "4       maqi  33.0      60.0\n",
      "5     qianba  20.0      80.0\n",
      "6   zhangsan  30.0      80.0\n",
      "7       lisi  20.0      60.0\n",
      "8     wangwu  25.0  100000.0\n",
      "9    zhaoliu  60.0      32.0\n",
      "10      maqi  33.0      60.0\n",
      "11    qianba  20.0      80.0\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "d = {\"name\":['zhangsan','lisi','wangwu','zhaoliu','maqi'],\"age\":[30.0,20.0,25.0,np.nan,33.0],\"score\":[80.0,np.nan,100000.0,32.0,60.0]}\n",
    "df = pd.DataFrame(d)\n",
    "df1 = df.copy()\n",
    "df3 = df1.fillna(60)\n",
    "df3.loc[5] = ['qianba',20,80] # 新增一行\n",
    "print(df3['score'].value_counts)\n",
    "df4 = df3.copy()\n",
    "# 合并两个pandas对象\n",
    "df3 = pd.concat([df3,df4],ignore_index=True)\n",
    "print(df3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   key  lval\n",
      "0  foo     1\n",
      "1  bar     2\n",
      "2  loo     3 \n",
      "\n",
      "   key  rval\n",
      "0  foo     3\n",
      "1  bar     4\n",
      "2  roo     5 \n",
      "\n",
      "   key  lval  rval\n",
      "0  foo     1     3\n",
      "1  bar     2     4\n",
      "   key  lval  rval\n",
      "0  foo     1     3\n",
      "1  bar     2     4\n"
     ]
    }
   ],
   "source": [
    "left = pd.DataFrame({'key':['foo','bar','loo'],'lval':[1,2,3]})\n",
    "right = pd.DataFrame({'key':['foo','bar','roo'],'rval':[3,4,5]})\n",
    "print(left,'\\n')\n",
    "print(right,'\\n')\n",
    "#列连接\n",
    "print(pd.merge(left,right,on='key'))\n",
    "#内连接\n",
    "print(pd.merge(left,right,how='inner'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     A      B  C\n",
      "0  foo    one  1\n",
      "1  bar    two  2\n",
      "2  bar  three  3\n",
      "3  foo    one  4\n",
      "4  foo    two  5\n",
      "5  foo    two  6 \n",
      "\n",
      "                B   C\n",
      "A                    \n",
      "bar      twothree   5\n",
      "foo  oneonetwotwo  16 \n",
      "\n",
      "               A   C\n",
      "B                   \n",
      "one       foofoo   5\n",
      "three        bar   3\n",
      "two    barfoofoo  13\n",
      "            C\n",
      "A   B        \n",
      "bar three   3\n",
      "    two     2\n",
      "foo one     5\n",
      "    two    11\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "df = pd.DataFrame({'A':['foo','bar','bar','foo','foo','foo'],\n",
    "                   'B':['one','two','three','one','two','two'],\n",
    "                   'C':[1,2,3,4,5,6]})\n",
    "print(df,'\\n')\n",
    "# 分组\n",
    "print(df.groupby('A').sum(),'\\n')\n",
    "print(df.groupby('B').sum())\n",
    "print(df.groupby(['A','B']).sum())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2018-01-01   -0.050510\n",
      "2018-01-02   -0.958852\n",
      "2018-01-03    0.170250\n",
      "2018-01-04   -1.804739\n",
      "2018-01-05   -2.063398\n",
      "                ...   \n",
      "2020-09-22   -0.478829\n",
      "2020-09-23    1.318794\n",
      "2020-09-24    0.712883\n",
      "2020-09-25   -1.830939\n",
      "2020-09-26   -0.231954\n",
      "Freq: D, Length: 1000, dtype: float64 \n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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xcXFKa3L0bcCzHpOb9myRZkDlJubS7GxsTRkyBBatGiR3XPxLqIxY8Yo5z1ve+b28NB1BTxQWblypXJir1u3jpYuXapMfJw+fboyKlzgpkGff/45ffjhh8r9T5w4QVdccYVhBfo111xj+DzcTpir0nkmAo8V56Dl5MmTho8DECzn9VdffUU33HCDsjV0+/bt9Le//Y2effZZevHFF33680HX441zmhvBcZDzzjvv0I4dO+iBBx5Q2r/L5yv/reapylOmTFH+Vv/hD3+g22+/XfmbDV1Uu8kUFxfzLqT2lStXKtcrKiraIyMj2z/88EPtPrt27VLus3btWrvvf/DBB9tHjhxpdzt/f0RERHtra6t222effdberVu39qamJp/9PAC+PK+vu+669quuusrmtueff769V69e7W1tbT75WQC8cU4Lv/3tb9unTJmiXb/vvvvahw0bZnOfa665pn3GjBk++TnA/AKeUdGrrKxUPqelpWkROEfucqvgwYMHU+/evWnt2rVuPy6nz7m985tvvkmtra3K8/zrX/9SHlee4gkQTOd1Y2MjxcTE2NzGKfVjx47RkSNHvHb8AL46p/lxxGMwvq++NfyMGTM8+r2A0BJmtnkRnOY744wzlDkRrLCwkKKiopQWy7Ls7Gzla+7q168fLVmyhO6//35l3ZMfj/+Y8/o+QLCe1/wH/OOPP6Zly5Ypz7N37156+umnla8VFBR4+ScB8O45vWbNGlq8eDHNmjVLu43vy9+jf4yqqiqqr6/3yc8D5maqQIXXP3mdXT8F0hv45L/jjjuUiZLcSZHXT/mX6qqrrsKMCQja85rP6bvuuksZ787nMxeLX3vttcrXOIMIYNZzmr+f6wYffPBBpdYFwBHT/CXjP7Y8EXLFihXUq1cv7facnBxqamqiiooKm/tzJTl/zV0vvfQSJScn0xNPPEGjR4+ms846Syno4nei69ev9+rPAuCv87pbt270+OOPU01NjbLUwwH5aaedpnwtLy/Piz8JgPfOaR5aeO655yqZlD//+c82X+P76ne/8fWkpCRlWRO6noAHKpzN4BOfBy0tX75cWaLR15ZwDQkHFAJviTt69ChNmjTJ7eepq6uze4cZHh6upTEBgvG8ls/lnj17KlmV9957T3kM3oIPYLZzmnf78I4ezm4/9thjds/D95Ufg/Euo478XkCICHQ1729+85v25OTk9u+++669oKBA+6irq9Puc+edd7b37t27ffny5e0bNmxonzRpkvIh27dvX/umTZvaf/3rX7cPHDhQucwfjY2NyteXLVum7PB5+OGH2/fu3du+ceNGpYq8T58+Ns8FEEzndUlJSfvLL7+s7K7g2+++++72mJiY9vXr1/v9Z4bQ5o1zetu2be2ZmZntN954o81j8A4i4eDBg+1xcXHt9957r3Jev/TSS+3h4eHtX3/9td9/ZjCHgAcqHCsZfbz55pvaferr65UtbKmpqcoJfPnllysnt+zss882fJxDhw5p93nvvffaR48e3R4fH6/8slxyySXKLwJAsJ7XHKhMnDhROaf5Mc4999z2devW+f3nhdDnjXOat9kbPQa/YZStWLGifdSoUe1RUVHteXl5Ns8BXQ+mJwMAAIBpBbxGBQAAAMARBCoAAABgWghUAAAAwLQQqAAAAIBpIVABAAAA00KgAgAAAKaFQAUAAABMC4EKAAAAmBYCFQAAADAtBCoAAABgWghUAAAAgMzq/wPyBn15Z6eQ2wAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "ts = pd.Series(np.random.randn(1000),index=pd.date_range('1/1/2018',periods=1000))\n",
    "print(ts,'\\n')\n",
    "ts = ts.cumsum() # 返回累计值\n",
    "ts.plot()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
